/**
* @version		$Id: caption.js 5263 2006-10-02 01:25:24Z webImagery $
* @copyright	Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

/**
* JCaption javascript behavior
*
* Used for displaying image captions
*
* @package	Joomla
* @since	1.5
* @version	1.0
*/
var JCaption = new Class({
    initialize: function (selector) {
        this.selector = selector;

        var images = $$(selector);
        images.each(function (image) { this.createCaption(image); }, this);
    },

    createCaption: function (element) {
        var caption = document.createTextNode(element.title);
        var container = document.createElement("div");
        var text = document.createElement("p");
        var width = element.getAttribute("width");
        var align = element.getAttribute("align");

        if (!width) {
            width = element.width;
        }

        //Windows fix
        if (!align)
            align = element.getStyle("float");  // Rest of the world fix
        if (!align) // IE DOM Fix
            align = element.style.styleFloat;

        if (align == "") {
            align = "none";
        }

        text.appendChild(caption);
        text.className = this.selector.replace('.', '_');

        element.parentNode.insertBefore(container, element);
        container.appendChild(element);
        if (element.title != "") {
            container.appendChild(text);
        }
        container.className = this.selector.replace('.', '_');
        container.className = container.className + " " + align;
        container.setAttribute("style", "float:" + align);

        container.style.width = width + "px";

    }
});

document.caption = null;
window.addEvent('load', function () {
    var caption = new JCaption('img.caption')
    document.caption = caption
});
